#ifndef _INPUT_MANAGER_H
#define _INPUT_MANAGER_H
#include <sys/time.h>
#include <common.h>

#define INPUT_TYPE_TOUCH 1 //触摸
#define INPUT_TYPE_NET 2    //网络

//1、抽象出数据本身的结构体，支持触摸输入和网络输入
typedef struct InputEvent{
    struct timeval tTime; //这是加的一个机构体，表示时间。在那个大的库里面定义的
    int iType;//有触摸和网络输入
    int iX;//wz-触摸的坐标
    int iY;
    int iPresstre; //wz-触摸的坐标的压力值
    char str[1024]; //指网络的输入
}InputEvent, *PInputEvent;

//2、用来表示输入设备
typedef struct InputDevice{
    char *name;
    //提供一个函数，上层的代码通过这个函数可以得到数据
    int (*GetInputEvent)(PInputEvent ptPInputEvent)  
    int (*DeviceInit)(void);//提供初始化函数
    int (*DeviceExit)(void);
    //程序有多个输入设备，通过链表把他们链接在一起
    struct InputDevice *ptNext;
}InputDevice,*PInputDevice;

void RegisterInputDevice(PInputDevice ptInputDev);
void InputSystemRegister(void);
int GetInputEvent(PInputEvent ptInputEvent);
void IntpuDeviceInit(void);

#endif // DEBUG